package com.baichuan.zntx.domain.bo;

import com.baichuan.common.core.validate.AddGroup;
import com.baichuan.common.core.validate.EditGroup;
import com.baichuan.zntx.domain.DeviceHistory;
import com.baichuan.common.mybatis.core.domain.BaseEntity;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 历史状态业务对象 t_device_history
 *
 * @author Baichuan
 * @date 2024-05-11
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = DeviceHistory.class, reverseConvertGenerate = false)
public class DeviceHistoryBo extends BaseEntity {
    private List<Date> timespan;
    /**
     *
     */
    @NotBlank(message = "不能为空", groups = { EditGroup.class })
    private String id;

    /**
     * 设备编号
     */
    @NotBlank(message = "设备编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String deviceId;

    /**
     * 设备状态
     */
    @NotNull(message = "设备状态不能为空", groups = { EditGroup.class })
    private Integer status;

    /**
     * 纬度
     */
    @NotNull(message = "纬度不能为空", groups = { EditGroup.class })
    private double latitude;

    /**
     * 经度
     */
    @NotNull(message = "经度不能为空", groups = { EditGroup.class })
    private double longtitude;

    /**
     * 电量
     */
    @NotNull(message = "电量不能为空", groups = { EditGroup.class })
    private double energy;

    /**
     * 姿态-X
     */
    @NotNull(message = "姿态-X不能为空", groups = { EditGroup.class })
    private double posX;

    /**
     * 姿态-Y
     */
    @NotNull(message = "姿态-Y不能为空", groups = { EditGroup.class })
    private double posY;

    /**
     * 姿态-Z
     */
    @NotNull(message = "姿态-Z不能为空", groups = { EditGroup.class })
    private double posZ;

    /**
     * 加速度
     */
    @NotNull(message = "加速度不能为空", groups = { EditGroup.class })
    private double accelerate;

    /**
     * 铁轨贴实
     */
    @NotNull(message = "铁轨贴实不能为空", groups = { EditGroup.class })
    private Boolean track;

    /**
     * 车轮
     */
    @NotNull(message = "车轮不能为空", groups = { EditGroup.class })
    private Boolean wheel;

    /**
     * rfid标签
     */
    @NotBlank(message = "rfid标签不能为空", groups = { EditGroup.class })
    private String rfid;

    private boolean hasRfid;
    /**
     * 卫星定位状态
     */
    @NotNull(message = "卫星定位状态不能为空", groups = { EditGroup.class })
    private Integer gpsStatus;


}
